package com.haohan.jingyuan.common.enums;

/**
 * 授权类型枚举
 *
 * @ClassName AuthTypeEnum
 * @Description 授权类型枚举类
 * @Author hexijun
 * @Time 2025/11/05 14:00
 * @Version 1.0
 */
public enum AuthTypeEnum {

    /**
     * 全部文件
     */
    ALL(1, "全部文件"),

    /**
     * 指定文件
     */
    SPECIFIED(2, "指定文件");

    /**
     * 类型码
     */
    private final Integer code;

    /**
     * 类型描述
     */
    private final String desc;

    AuthTypeEnum(Integer code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    /**
     * 获取类型码
     *
     * @return 类型码
     */
    public Integer getCode() {
        return code;
    }

    /**
     * 获取类型描述
     *
     * @return 类型描述
     */
    public String getDesc() {
        return desc;
    }

    /**
     * 根据类型码获取枚举
     *
     * @param code 类型码
     * @return 授权类型枚举
     */
    public static AuthTypeEnum getByCode(Integer code) {
        if (code == null) {
            return null;
        }
        for (AuthTypeEnum type : values()) {
            if (type.getCode().equals(code)) {
                return type;
            }
        }
        return null;
    }

    /**
     * 根据类型码获取描述
     *
     * @param code 类型码
     * @return 类型描述
     */
    public static String getDescByCode(Integer code) {
        AuthTypeEnum type = getByCode(code);
        return type != null ? type.getDesc() : "未知";
    }
}

